Don't reload the current folder unnecessarily on ::map().
authorFederico Mena Quintero <federico@ximian.com>
Wed, 28 Sep 2005 01:07:08 +0000 (01:07 +0000)
committerFederico Mena Quintero <federico@src.gnome.org>
Wed, 28 Sep 2005 01:07:08 +0000 (01:07 +0000)
commit6cd6a0a24e46ef05837a0d18eba18e6dcbb71e03
tree4fadb31ea8c4c63bf9a43c27833b935e0356e141
parent72851a22cd6f85f2215f2ed80c83463af593bf17
Don't reload the current folder unnecessarily on ::map().

2005-09-27  Federico Mena Quintero  <federico@ximian.com>

Don't reload the current folder unnecessarily on ::map().

* gtk/gtkfilechooserprivate.h (ReloadState): New enum to represent
the reloading state.
(struct _GtkFileChooserDefault): Added a "reload_state" field.

* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_init):
Initialize impl->reload_state.
(gtk_file_chooser_default_map): Check the impl->reload_state; load
a default folder if no folder has been set, or reload the current
one only if we had been unmapped first.
(gtk_file_chooser_default_update_current_folder): Set the
reload_state to RELOAD_HAS_FOLDER.
(gtk_file_chooser_default_unmap): Implement, and set the
reload_state to RELOAD_WAS_UNMAPPED.
(shortcuts_model_create): Don't call shortcuts_add_bookmarks()
here; they'll get (re)loaded on ::map() anyway.

* gtk/gtkfilechooserwidget.c
(gtk_file_chooser_widget_constructor): Don't set a default folder here.

* tests/autotestfilechooser.c (test_action_widgets): Don't take in
a dialog; build it ourselves.
(test_reload): New test to ensure that we don't load the default
folder more than once, and that we reload it when
unmapping/remapping.
(get_impl_from_dialog): New utility function.
(test_widgets_for_current_action): Use get_impl_from_dialog().
gtk/gtkfilechooserprivate.h